"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/3/3 8:40
@Description :
定义Account类，
1.要求具有属性： 姓名（长度2-4位），余额（必须大于10），密码（长度6），如果不满足则给出提示信息，使用默认值
2.定义set_xxx方法给属性赋值
3.编写show_info方法，接收用户名和密码，正确则展示用户的余额信息
"""


class Account:

    __username = None
    __password = None
    __money = None

    # 初始化用户名
    def set_username(self, username: str):
        if len(username) < 2 or len(username) > 4:
            print('输入的用户名不合法，用户名的长度为2-4位')
        else:
            self.__username = username

    # 初始化密码
    def set_password(self, password: str):
        if len(password) == 6:
            self.__password = password
        else:
            print('密码长度不合法,密码长度必须为6位')

    # 初始化余额
    def set_money(self, money: float):
        if money < 10:
            print('请输入大于10的余额')
        else:
            self.__money = money

    # 查看余额
    def show_info(self, username: str, password: str):
        if self.__username == username and self.__password == password:
            return f'{self.__username}账户的余额是{self.__money}'
        else:
            print('用户名或密码不正确')


# 创建对象
account = Account()
'''
直接通过对象名.属性名的形式无法保证数据的合理性，需要将属性私有化  
account.__username = 'admin'
account.password = '123456789'
'''
account.set_username('tom')
account.set_password('123456')
account.set_money(150)

# 查看账户余额  输入正确的用户名和密码
print(account.show_info('tom', '123456'))